package com.ys.erp.stage_user_service.bean.condition;

import com.ys.erp.framework.condition.BasePageCondition;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 南山
 * @date 2025/07/08 14:22
 */
public class UserComplaintCondition {

    @EqualsAndHashCode(callSuper = true)
    @Schema(description = "分页客诉参数")
    @Data
    public static class PageComplaintCon extends BasePageCondition {
        @Schema(description = "猫咪编号")
        private String catCode;

        @Schema(description = "店铺编号")
        private String shopCode;

        @Schema(description = "时间起始")
        private String startDate;

        @Schema(description = "时间结束")
        private String endDate;

        @Schema(description = "desc  asc")
        private String descOrAsc;


        @Schema(description = "咨询方式 0主动回访1被动咨询")
        private Integer seekType;

        @Schema(description = "0猫咪健康问题，1商城问题，2门店问题，3其他问题")
        private Integer problemType;

        @Schema(description = "0健康，1耳科疾病，2皮肤科疾病，3呼吸道疾病，4消化肠胃泌尿生殖疾病，5其它")
        private Integer diseaseType;

        @Schema(description = "0 套餐 1市场价 2全款")
        private Integer adoptType;

        @Schema(description = "petType 0猫 1狗")
        private Integer petType;

        @Schema(description = "领养只数 1 一只  -1 2只及以上")
        private Integer adoptNum;

        /**
         * 处理进程，0未处理，1已回复待跟踪，2完毕
         */
        @Schema(description = "处理进程，0未处理，1已回复待跟踪，2完毕")
        private Integer disposeStatus;
    }


    @EqualsAndHashCode(callSuper = true)
    @Data
    @Schema(description = "分页投诉请求对象")
    public static class PageStrongComplaintCon extends BasePageCondition{

        @Schema(description = "用户id")
        private Long userId;

        @Schema(description = "关联单号")
        private String relaNo;

        @Schema(description = "查询类型，0待接入，1我的处理中，2处理完成待用户确认，3已结束")
        @Max(3)
        @Min(0)
        @NotNull
        private Integer queryType;

    }

    @Data
    @Schema(description = "处理完成请求对象")
    public static class DisComplaintOkCon {

        @Schema(description = "投诉单号")
        @NotBlank
        private String complaintNo;

        @Schema(description = "处理描述")
        @NotBlank
        private String disDescribe;

        @Schema(description = "处理图片")
        @Size(max = 5)
        @NotNull
        private List<String> disImageList = new ArrayList<>();

    }
}
